package cn.xy.base.server.service;

import cn.xy.base.server.enums.RoleEnum;
import cn.xy.base.server.po.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 表[sys_role]对应的服务类
 *
 * @author auto
 */

public interface SysRoleService extends IService<SysRole> {

    String SYS_ROLE_NOT_EXIST = "角色不存在";

    /**
     * 根据角色名称获取角色
     *
     * @param roleName 角色名称
     * @return 角色
     */
    SysRole getByRoleName(String roleName);

    /**
     * 根据管理员id获取角色
     *
     * @param adminId 管理员id
     * @return 角色
     */
    SysRole get(int adminId);

    /**
     * 根据唯一key获取角色
     *
     * @param key 唯一key
     * @return 角色
     */
    SysRole getByKey(String key);

    /**
     * 根据角色id列表获取角色列表
     *
     * @param roleIdList 角色id列表
     * @return 角色列表
     */
    List<SysRole> listByIdIn(List<Integer> roleIdList);

    /**
     * 给角色添加权限
     *
     * @param roleEnum     角色类型枚举
     * @param permissionId 权限id
     */
    void addPermission(RoleEnum roleEnum, int permissionId);

    /**
     * 查询所有角色并以id为key的字典
     *
     * @return 角色map
     */
    Map<Integer, SysRole> getMap();
}
